% V20210224 - 17.5.3 GW_CODE_HIGHLIGHT$ INCLUDE "GW.bas" % Create a page. p = GW_NEW_PAGE() % Prepare title bar string. title$ = GW_ADD_BAR_TITLE$("Syntax Highlighting demo") % Add title to page. GW_ADD_TITLEBAR(p, title$) % Get content of the GW demo. GRABFILE demo$, "../source/GW_demo.bas" % Create an array for rfo-basic keywords ARRAY.LOAD bold$[], "~", "INCLUDE", "END IF", "IF", "THEN", "ELSE", "GOTO", "GOSUB", "INT$" ~ "LEFT$", "IS_IN", "POPUP", "ARRAY.LOAD", "ARRAY.DELETE", "ARRAY.SHUFFLE", "ARRAY.LENGTH" ~ "PAUSE", "PRINT", "END", "DO", "UNTIL", "WHILE", "REPEAT", "RETURN", "SPLIT", "FOR", "NEXT" ~ "LOWER$", "CHR$", "TIMER.SET", "TIMER.CLEAR", "TIMER.RESUME", "ONTIMER:", "VIBRATE", "TONE" ~ "BYTE.OPEN", "BYTE.COPY", "LIST.CREATE", "LIST.ADD", "LIST.TOARRAY", "LIST.SIZE", "LIST.REMOVE" % Dimension and fill an array with the GW keywords. DIM blue$[GW_KEYWORD_NB()] GW_POPULATE_KEYWORD_ARRAY(blue$[]) % Create an array for relational operators ARRAY.LOAD red$[], "+", ",", "(", ")", "!", "& ", "|", "%", "[", "]" % Convert the raw code of the GW demo to syntax highlighted version. % Warning: this may take a while! POPUP "Formatting...\nPlease be patient" hilited$ = GW_CODE_HIGHLIGHT$(demo$, bold$[], blue$[], red$[]) % Now display the code in a text control. GW_ADD_TEXT(p, hilited$) % Render the page GW_RENDER(p) DO % Wait for user action. r$ = GW_WAIT_ACTION$() % Place here any necessary code to process user actions. % Example feedback. POPUP r$ % End when BACK key is pressed. UNTIL r$ = "BACK" END "End of Syntax Highlighting demo."